package com.itheima.demobyfinal;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //目标:面向对象编程实现智能家居控制系统
        //角色:设备(吊灯,电视机,洗衣机,落地窗,...)
        //具备的功能:开和关
        //谁控制他们:智能控制系统(单例对象),控制调用设备的开和关
        //1.定义设备类,创建设备对象代表家里的对象
        //2.准备这些设备对象,放到数组中,代表整个家庭的设备
        JD[] jds=new JD[4];     //tv,air,lamp,washMachine都属于jd的子类对象,多态写法
        jds[0]=new TV("小米电视",true);   //alt+enter创建有参构造器
        jds[1]=new WashMachine("美的",false);
        jds[2]=new Lamp("欧灯",true);
        jds[3]=new Air("美的空调",false);

        //3.为每个设备制定一个开和关的功能.定义一个接口,让家电实现开和关的功能
        //4.创建智能控制对象,控制设备的开和关
        //控制中心只需要一个对象,可以设计成单例类,只能修改一次
        SmartHomeControl smartHomeControl=SmartHomeControl.getInstance();

        //5.控制电视机
        smartHomeControl.control(jds[0]);

        //6.提示用户操作:a.展示全部设备的当前情况 b.让用户选择哪一个操作
        //打印全部设备的开和关现状
        while (true) {      //ctrl+alt+l可以直接加循环等(如while)
            SmartHomeControl.printAllStatus(jds);
            System.out.println("请您选择要控制的设备:");
            Scanner sc = new Scanner(System.in);
            String command = sc.next();
            switch (command){
                case "1":
                    smartHomeControl.control(jds[0]);
                    break;
                case "2":
                    smartHomeControl.control(jds[1]);
                    break;
                case "3":
                    smartHomeControl.control(jds[2]);
                    break;
                case "4":
                    smartHomeControl.control(jds[3]);
                    break;
                case "exit":
                    System.out.println("退出系统");
                    return;
                default:
                    System.out.println("输入错误");
            }
        }
    }
}
